const express = require('express');
const app = express();

const { apiLimiter } = require('./middlewares/rateLimitMiddleware');

app.use(express.json()); // 解析JSON请求体 (内置中间件)
app.use(express.urlencoded({ extended: true })); // 析URL编码的请求体 (内置中间件)

app.use(apiLimiter);

// 1 user路由中间件
const userRoute = require('./routes/userRoute');
app.use('/user', userRoute);

// 2 article路由中间件
const articleRoute = require('./routes/articleRoute');
app.use('/article', articleRoute);

// 3 收藏中间件
const collectRoute = require('./routes/collectRoute');
app.use('/collect', collectRoute);

// 阿里云oss 获取签名接口
const ossRoute = require('./routes/ossRoute');
app.use('/oss', ossRoute);

// test接口
const testRoute = require('./test/route');
app.use('/test', testRoute);



// 新增：404路径捕获中间件（放在所有路由之后）
app.use((req, res, next) => {
  const error = new Error(`请求路径 ${req.originalUrl} 不存在`);
  error.statusCode = 404; // 设置状态码
  next(error); // 传递给错误处理中间件
});

// 全局错误处理中间件
const errorHandler = require('./middlewares/errorHandler');
app.use(errorHandler);

const { port } = require('./config/service');
// 启动服务
app.listen(port, () => {
  console.log(`服务已启动在${port}`);
});